﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using OrderDocument;
using System.Data;
using DataLayer;
using System.Text;

namespace Manager
{
    public partial class frmCekilis : XtraForm
    {
        public frmCekilis()
        {
            InitializeComponent();
        }

        private void frmCekilis_Load(object sender, EventArgs e)
        {

        }

        private void txtCariKod_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F10)
            {
                Liste();
            }
        }

        private void Liste()
        {
            frmListe liste = new frmListe();
            liste.ListeTipi = frmListe.ListeTipleri.SupplierAdi;
            liste.Filtre = txtCariKod.Text;

            if (liste.ShowDialog(this) == DialogResult.OK)
            {
                List<List<string>> val = liste.Value as List<List<string>>;
                foreach (List<string> lst in val)
                {
                    txtCariKod.Text = lst[0];
                    txtCariAdi.Text = lst[1];
                }
            }
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            IDbDataParameter prm1 = Factory.GetFactory.GetParameter("@cekilis_no", DbType.String);
            IDbDataParameter prm2 = Factory.GetFactory.GetParameter("@tedarikci_kodu", DbType.String);
            IDbDataParameter prm3 = Factory.GetFactory.GetParameter("@cekilis_tarihi", DbType.DateTime);
            IDbDataParameter prm4 = Factory.GetFactory.GetParameter("@cekilis_limit", DbType.Decimal);
            IDbDataParameter prm5 = Factory.GetFactory.GetParameter("@cekilis_aciklama", DbType.String);

            prm1.Value = txtNo.Text;
            prm2.Value = txtCariKod.Text;
            prm3.Value = dteTarih.DateTime;
            prm4.Value = Convert.ToDecimal(txtLimit.Text);
            prm5.Value = txtAciklama.Text;


            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(SELECT     cekilis_no FROM CEKILISLER WHERE     (cekilis_no = @cekilis_no)) \r\n");
            sb.Append(" UPDATE CEKILISLER SET tedarikci_kodu=@tedarikci_kodu, cekilis_tarihi=@cekilis_tarihi, cekilis_limit=@cekilis_limit, cekilis_aciklama=@cekilis_aciklama WHERE (cekilis_no = @cekilis_no) \r\n");
            sb.Append(" else \r\n");
            sb.Append("insert into CEKILISLER (cekilis_no, tedarikci_kodu, cekilis_tarihi, cekilis_limit, cekilis_aciklama) VALUES (@cekilis_no, @tedarikci_kodu, @cekilis_tarihi, @cekilis_limit, @cekilis_aciklama) \r\n");

            Factory.GetFactory.ExecuteNonQuery(CommandType.Text, sb.ToString(), prm1, prm2, prm3, prm4, prm5);
            clear();
        }

        private void txtCariKod_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            Liste();
        }

        private void txtNo_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            frmListe liste = new frmListe();
            liste.ListeTipi = frmListe.ListeTipleri.Cekilisler;

            if (liste.ShowDialog(this) == DialogResult.OK)
            {
                clear();
                List<List<string>> val = liste.Value as List<List<string>>;
                foreach (List<string> lst in val)
                {
                    txtNo.Text = lst[0];
                    txtCariKod.Text = lst[1];
                    txtCariAdi.Text = lst[2];
                    dteTarih.DateTime = Convert.ToDateTime(lst[3]);
                    txtLimit.Text = lst[4];
                    txtAciklama.Text = lst[5];
                }
            }
        }

        private void clear()
        {
            txtNo.Text = "";
            txtCariKod.Text = "";
            txtCariAdi.Text = "";
            dteTarih.DateTime = DateTime.Now;
            txtLimit.Text = "";
            txtAciklama.Text = "";
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            IDbDataParameter prm1 = Factory.GetFactory.GetParameter("@cekilis_no", DbType.String);
            prm1.Value = txtNo.Text;
            Factory.GetFactory.ExecuteNonQuery(CommandType.Text, "DELETE FROM CEKILISLER WHERE     (cekilis_no = @cekilis_no)", prm1);
            clear();
        }
    }
}
